package Day_0209.NetWork;

/**
 * @author zxc
 * @date 2023/02/09 22:15
 **/
public class TCP_Guarantee_Reliability {
    public static void main(String[] args) {
        /**
         * TCP如何保证可靠性
         * ===》
         * 1.序列号和确认号机制：
         * TCP 发送端发送数据包的时候会选择一个 seq 序列号，接收端收到数据包后会检测数据包的完整性，如果检测通过会响应一个 ack 确认号表示收到了数据包。
         *
         * 2.超时重发机制：
         * TCP 发送端发送了数据包后会启动一个定时器，如果一定时间没有收到接受端的确认后，将会重新发送该数据包。
         *
         * 3.对乱序数据包重新排序：
         * 从 IP 网络层传输到 TCP 层的数据包可能会乱序，TCP 层会对数据包重新排序再发给应用层。
         *
         * 4.丢弃重复数据：
         * 从 IP 网络层传输到 TCP 层的数据包可能会重复，TCP 层会丢弃重复的数据包。
         *
         * 5.流量控制：
         * TCP 发送端和接收端都有一个固定大小的缓冲空间，为了防止发送端发送数据的速度太快导致接收端缓冲区溢出，发送端只能发送接收端可以接纳的数据，
         * 为了达到这种控制效果，TCP 用了流量控制协议（可变大小的滑动窗口协议）来实现。
         *
         */
    }
}
